package com.ranyk.www.common.enums;

import lombok.Getter;

/**
 * CLASS_NAME: MenuTypeEnum.java <br/>
 *
 * @author ranyk           <br/>
 * @version V1.0           <br/>
 * @decription: 菜单类型枚举对象  <br/>
 * @date: 2022-04-03 <br/>
 */
@Getter
public enum MenuTypeEnum {

    /**
     * 一级目录
     */
    FIRST_MENU(1, "一级目录"),
    /**
     * 二级目录
     */
    SECOND_MENU(2, "二级目录"),
    /**
     * 三级目录
     */
    THIRD_MENU(3, "三级目录"),
    /**
     * 操作目录
     */
    HANDLE_MENU(0, "操作目录");

    /**
     * 菜单类型
     */
    private final Integer type;
    /**
     * 类型信息
     */
    private final String typeInfo;

    /**
     * 全参构造函数
     *
     * @param type 菜单类型
     * @param typeInfo 类型信息
     */
    MenuTypeEnum(Integer type, String typeInfo) {
        this.type = type;
        this.typeInfo = typeInfo;
    }

    /**
     * 通过传入的菜单类型,查询对应的菜单类型枚举
     *
     * @param index 菜单类型值
     * @return 返货获取到的菜单类型枚举,默认返回 MenuTypeEnum.FIRST_MENU;
     */
    public static MenuTypeEnum stateOf(int index) {
        for (MenuTypeEnum typeEnum : values()) {
            if (typeEnum.getType() == index) {
                return typeEnum;
            }
        }
        return MenuTypeEnum.FIRST_MENU;
    }
}
